package runner

// Version 1：最简单的任务执行器
// - 顺序执行任务，忽略 context，作为对照组。

type Task func() error

type Runner struct {
	tasks []Task
}

func New() *Runner {
	return &Runner{tasks: make([]Task, 0)}
}

func (r *Runner) Add(task Task) {
	r.tasks = append(r.tasks, task)
}

func (r *Runner) Run() error {
	for _, task := range r.tasks {
		if err := task(); err != nil {
			return err
		}
	}
	return nil
}
